#ifndef __AIR720_H
#define __AIR720_H

#include "bsp.h"

#define ENABLE 1
#define DISABLE 0

#define NET_CARD_CMNET DISABLE //电信网络
#define NET_CARD_3GWAP ENABLE  //移动网络

//@ 心跳包间隔时间
#define PINT_HEARTBEAT_TIME (6 * 60)

//@ AT 测试指令超时时间	单位：100ms
#define PING_AT_OVERTIME (50)
//@ 附加网络超时时间	单位：100ms
#define ADD_NET_OVERTIME (10)
//@ 设置 APN 超时时间	单位：100ms
#define SET_APN_OVERTIME (10)
//@ 激活移动场景超时时间	单位：100ms
#define ACTIVE_MOVE_SCENE_OVERTIME (10)
//@ 配置阿里云连接参数
#define SET_CONFIG_OVERTIME (10)
//@ 配置域名与端口
#define SET_SERVER_IP_PORT_OVERTIME (10)
//@ 设置心跳包间隔
#define SET_HEARTBEAT_OVERTIME (10)
//@ 订阅 topic
#define SUB_TOPIC_OVERTIME (10)
//@ 发布消息超时时间
#define PUB_TOPIC_OVERTIME (10)

#define AIR7200_USE_USART 			USART2
//#define AIR720_printf					CH_UsartPrintf
#define AIR720_RxCounter 				u2Receiver.receivedLen //串口2控制 7020模块
#define AIR720_RX_BUF 					u2Receiver.buffer         //串口2控制 7020模块
#define AIR720_RXBUFF_SIZE 			UART_RXBUF_SIZE      //串口2控制 7020模块

#define AIR720_RST_PORT 				NET_RESET_GPIO_Port
#define AIR720_RST_PIN 					NET_RESET_Pin
#define AIR720_SET_PIN() 				HAL_GPIO_WritePin(AIR720_RST_PORT, AIR720_RST_PIN, GPIO_PIN_SET)
#define AIR720_RESET_PIN() 			HAL_GPIO_WritePin(AIR720_RST_PORT, AIR720_RST_PIN, GPIO_PIN_RESET)
#define AIR720_OPEN_PWR()				HAL_GPIO_WritePin(NET_PWR_GPIO_Port, NET_PWR_Pin, GPIO_PIN_SET)
#define AIR720_CLOSE_PWR()			HAL_GPIO_WritePin(NET_PWR_GPIO_Port, NET_PWR_Pin, GPIO_PIN_RESET)

void AIR720_printf(char *fmt, ...);
u8 AIR720_ConnecteService(char * ip,u16 port,int loopNum,u16 loop_delay);

/* 底层 AT 指令实现 ----------------------------------------------------------*/
u8 AIR_WaitReday(void);
u8 AIR720_COMM_Cmd(int loopNum, char *cmd_str, char *verify_str, u16 loop_delay);
#endif
